package java6681.lesson14;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
//java java6681.lesson14.OneServer6681
//javac java6681/lesson14/OneServer6681.java
public class OneServer6681 {
    public static void main(String[] args) throws IOException {
        //（1）创建ServerSocket对象，并绑定端口号，如18888
        ServerSocket ss = new ServerSocket(18888);

        System.out.println("18888服务平台");

        // （2）调用accept()方法监听是否有客户端发送连接请求
        Socket s = ss.accept();

        // （3）当接收到客户端的连接请求，在控制台上显示客户端IP地址和端口号
        String client = s.getInetAddress().getHostAddress() + ":" + s.getPort();
        System.out.println(client + "已接入");

        // （4）首先向客户端发送一句欢迎用语
        Scanner input = new Scanner(System.in);//回答答案
        PrintStream printer = new PrintStream(s.getOutputStream(),true);
        printer.println("欢迎致电18888服务平台，很高兴为您服务....");

        Scanner reader = new Scanner(s.getInputStream());//阅读问题,获取客户端问的问题


        String problem = null;
        int count = 1;
        // （5）接收客户端发来的问题，并显示在控制台上
        // （6）从键盘输入答案，并把答案发送给客户端
        // （7）重复（5）和（6），当接收到客户端的”谢谢”后，发送”再见”结束会话
//        PrintStream printer1 = new PrintStream(s.getOutputStream(),true,"utf-8");
        while (true) {
            problem = reader.nextLine();
            if ("谢谢".equals(problem)) {
                printer.println("再见");
                System.out.println("结束：" + client);
                break;
            }
            System.out.println("问" + count++ + ":" + problem);
            System.out.println("请输入答案：");

            printer.println(input.nextLine());
        }
        // （8）关闭
        input.close();
        s.close();
    }
}
